Numerical curve generator, such as for machine tool systems



May 31, 1966 K. KVEIM 3,254,203

NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS Filed Aug. 28, 1962 12 Sheets-Sheet 1 22 DIRECTION OF MOTION c M E(AX)+ a 5 s 7 an) 4 2 e 5 E O O i;' O O O O 000000000 000 O E O O o O O O DIRECTION OF MOTION INVENTOR. FIG-5 KJELL KVEIM fF/CHE WE/VA/Y/ FARR/#67019 ATTO NEYS May 31, 1966 I K. KVEIM NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS Filed Aug. 28, 1962 12 Sheets-Sheet 2 FIG?" 6 I AUXILIARY FUNCTIONS 7 COMMAND READER x +DIR HUMER'CAL SIGNAL CONTROL P SERVO FEEDBACK AND AY NUMERICAL DIR x SIGNAL/ 7 DATA 38 PUNCHE DIsTRIBuToR K CURVE MACHINE TAPE 1 TOOL READER GENERATOR 1 COMMAND 1' +DIR NUMERICAL SIGNAL l mL Y sERvo FEEDBACK 3l TP SIGNAL Y 3 "END 0F cuRvE" SIGNAL a ARITHMETIC FIG.7 um

aE=a 44 ZK L a 4 43 FIG?" Y V- n FIGJ FIG.7

Y Y OPERATION NUMBER IN a b x Y IN ARITHMETIC ARITHMETIC UNIT UNIT suBTRAcT a 3 v I 0 ADD b I I Y SUBTRACT a 2 I SUBTRACT o. g 3

I I ADD b 3 2 I X F1 I\ a +2 V 4 2 FISH Y SUBTRACTIL 5 2 ADD b +6 5 a INVENTOR.

KJELL KVEIM sqBTRAcT +5 I/ s 3 BY su BTRACT a Q 7 3 F N MYVEAMUQfF A/PR/AIGTO ATTONEYS K. KVEIM 3,254,203

NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS May 31, 1966 12 Sheets-Sheet 4 Filed Aug. 28, 1962 aO E d3.

\IE wmmmssz 5 99 1N VEN TOR KJELL KVEIM K. KVElM May 31, 1966 NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS 12 Sheets-Sheet 6 Filed Aug. 28, 1962 K. KVEIM May 31, 1966 NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS 12 Sheets-Sheet 7 Filed Aug. 28, 1962 May 31, 1966 K. KVEIM NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS Filed Aug. 28,. 1962 12 Sheets-Sheet 8 coMMANo PULSES 20' an nmecnomu. 3 .1 h COUNTER -v- PULSE- 2 TIMING' 204 205 DIGITAL TO A" ANALOG CONVERTER.

FEED-BACK PULSES K SIGN MODIFICATION FOR ZERO TEST IN THE REGISTER WHEN sum Tv se-r SIGNTAOX WHEN SIGN! Tr sz'r SIGN AY u To:

x m o i WHEN SIGNY Tr SET 51mg WHEN sreNg s51 SIGN Y BOOLEAN EXPRESSIONS FOR SIGN SETTING AND MODIFICATION SV'H SET: REFERRING T0 SETTING oumNe MODIFICATION OF zzno TEST THE" READ m" PHASE DURING THE" GENERATE" PHASE r J\ r J\ SAX Anon. AX'S (AX=0) (G-'SY 3 Y) 32x ADDR-AX' (AX=O) (CL'SY tL'S SAY ADDR.AY' (=0) X ix) SAY ADDR.AY- (AY=O) (0x 7 ax) Sx AnnR.AY-S+AooR. x-S (x =0) -8v CL'SY) Sx ADDFLAY'SHADDR- x-S (x=o) (&-S'Y Y) S Y (ADDFLAX ADDR. Y)- (Y =0) (a'SX (1'8 x) Y (ADDRAX+ ADDR. n- (Y =0) ('1- x a-Sx) T Ao0R.TY- T; AODRTT'S I2 ADDR-TP' S TF ADDR.TF"S

INVENTOR.

\ KJELL KVEIM May 31, 1966 K. KVEIM NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS Filed Aug. 28, 1962 SIGN SIGN s|GN s|GN A x A Y 5 1 I 2 'f' l 3 12 /3 /4 15 0- I8 I9 n 2o? 21F Z2 1" 1' 24 BOOLEAN GETTING:

FIG. |4

WE GET OUTPUT SIGNALS SIGN ADD. SUB SUB.

ADD.

ADD.

SUB SUB ADD. SUE

ADD. 5U B.

ADD. SUB

ADD. SUB.

ADD. ADD SUB. SU B. ADD.

SUB ADD.

ADD SUD SUB. ADD.

ADD.

SUB.

ADD. 8 U8, ADD

SUB. ADD. 5U B ADD. ADD. S US.

SUB.

ADD- ADD.

SUB.

SUB. ADD.

ADD SUB,

ADD. SUB.

EXPRESSIONS FOR THE THE SIGN LOGIC 12 Sheets-Sheet 9 VS SIGN COMBINATIONS g Y x-Mov Y-MOV.

A00. 505. NEG. Pos. SUB. A00. Pos. NEG. A00. sua. NEG. POS. SUB. A00 P05. NEG. A00 SUB, P05. NEG. sue. A00. NEG POS. A00. sue. Pos. NEG 300. A00 NEG. P05. 500. A00. P05. P05. A00. SUB. NEG. NEG. sua. A00. NEG. NEG. A00 sue. P05. P08. sue. A00. P08. P05. A00, sue. NEG. NEG. 500. A00. P05. Pos

A00. suB NEG. NEG. ADD sua NEG. POS. sus. A00. POS. NEG. A00. sua. P0s. NEG. sue. A00. NEG. POS' SUB. ADD. NEG. NEG. A00. SUB. P05. P05. sua. A00. NEG. NEG. A00 sue. P05. P05.

VALUE OF THE OUTPUT SIGNALS OF IN THE ABOVE TABLE ADDAX= 5.3+ a SUBAX EbTfTx ADDAY 642+ a6 SUBAY KEZY= suax,A00 Y=&d.+a.

A00x, sue Y SETTING M: ACCUMULATOR CARRY MEMORY, Mwjhr, GIVES May 31, 1966 K. KVEIM 3,254,203

NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TOOL SYSTEMS Filed Aug. 28, 1962 12 Sheets-Sheet 1o K. KVEIM 3,

SUCH AS FOR MACHINE TOOL SYSTEMS May 31, 1966 NUMERICAL CURVE GENERATOR,

12 Sheets-Sheet 11 Filed Aug. 28, 1962 May 31, 1966 K. KVEIM 3,254,203

NUMERICAL CURVE GENERATOR, SUCH AS FOR MACHINE TO L SYSTEMS Filed Aug. 28. 1962 1? Sheets-$1169 12 +AX +AY I H CHANGE smug +AY 23" FIG. :7

s /Tr x Tr CHANGE CHANGE SIGN X SIGN! h x FIG. l9

AX m A I] ..AY IAY CHANGE SIGN Tr" OAK I CHANGE Ig I CHANGE CHANGE 1v SIGN K A Y AX +AY}]I cumea SIGN CHANGE T X SIGN Y K w c -lA' Gfi 5 Tr-+ 'US A A)Y( H +AX +A i A X i ".s f I f tHANGE FIG. I8 Y CHANGE. SIGN 1 Y 1 x H .7 g FIG 20 X I! A r \CHANGF smu 3 KJELL KVEIM United States Patent NUMERICAL CURVE GENERATOR, SUCH AS FOR 17 Claims. (or. 235-452 This invention relates to a numerical curve generator. A principal use of the present invention is in the automatic control of a machine tool, although it may be used for other purposes, also.

It is an object of this invention to provide a novel an improved numerical curve generator.

It is also an object of this invention to provide such a curve generator which is capable of generating conic section curves, such as parabolic curves, circular arcs and straight lines.

.A further object of this invention is to provide such a curve generator which is particularly advantageous for controlling the operation of a machine tool.

Additional objects and advantages of this invention will be apparent from the following detailed description of a presently-preferred embodiment thereof, shown in the accompanying drawings.

In the drawings:

FIG. 1 shows a work piece of the type which may be machined by a machine tool under the control of the present curve generator;

FIG. 2a shows a straight line of a predetermined slope which may be generated by the present curve generator;

FIGS. 2b and 20 show, respectively, a circular arc and a parabolic curve which may be generated by the present curve generator;

FIG. 3 is a plan view of a section of a punched tape encoded with the parameters of a sloping straight line;

FIG. 4 is a plan view of a section of a punched tape encoded with the parameters of a circular arc;

FIG. 5 is a plan view of a section of a punched tape encoded with the parameters of a parabolic curve;

FIG. 6 is a schematic block diagram of a machine tool control system which embodies the present invention;

FIG. 7a is a Cartesian coordinate graph showing the incremental movements involved in generating a line which substantially follows the sloping line L in accordance with the present invention;

FIG. 7b is a table showing the arithmetic operations involved in generating this line;

FIG. 7c is a schematic diagram showing the arithmetic unit for generating this line;

FIGS. 7d, 7e, 7 and 7g show the same parabola with four different axial orientations, each having the parabola axis coincident with either the X or Y coordinate axis and with the vertex of the parabola at the origin of the X and Y coordinate axes;

FIG. 8 is a schematic block diagram showing components of the present curve generator which operate during the generation of a straight line;

FIG. 9 is a similar view showing components of the curve generator which operate during the generation of a circular arc;

FIG. 10 is a similar view showing components of the curve generator which operate during the generation of a parabolic curve;

FIG. 11 is a similar view showing the complete curve generator;

FIG. 12 is a schematic block diagram of the reader control and data distributor. in the present control system;

FIG. 13 is a schematic diagram of the servo motor arrangement for moving a machine tool in one coordinate direction under the control of the present curve generator.

FIG. 14 shows the operation of the sign logic block in the present control system;

FIG. 15 shows the operation of the sign-change logic block associated with the zero-test circuitry in the present control system;

FIGURES 16a and 16b show a complete schematic circuit diagram of the present control system, including the reader control and data distributor of FIG. 12 and the complete curve generator of FIG. 11.

FIGURES 17, 18, 19 and 20 illustrate the four possible circular curves which may be generated in accordance with four difierent positions of the starting point of the curve with respect to the center of the circle.

In FIG. 1, a finished workpiece W is shown as an example of the type of workpiece which may be machined on a machine tool controlled numerically by the arrangement of the present invention. Such a workpiece has a number of different curves on its periphery. (As used herein, the term curves includes straight lines as well as lines which are not straight.)

Commonly when such a workpiece is drawn, curves other than straight lines and circular arcs will be empirical curves with are not exactly mathematical curves. Usually such empirical curves donot fit circular arcs closely, but in most instances they are not greatly difierent from parabolic curves. Therefore, a numerical control system which is capable of generating parabolic curves, as well as well as circular arcs and straight lines, will be able to substantially generate all of the curves required to produce the workpiece. That is, the purely mathematical curves generated by the curve generator will substantially fit all of the workpiece curves, whether mathematical curves or empirical curves.

Referring to FIG. 2a, using Cartesian coordinates, any

straight line L can be expressed mathematically by the coordinate differences, AX and AY, between the starting point 20 and the end point 21 of the line. The magnitudes of AX and AY determine the length of line L and the respective signs of AX and AY determine its direction.

Referring to FIG. 2b, any circular arc can be expressed mathematically by the parameters AX and AY, which are the differences in the X and Y directions between the starting point 22 and the end point 23 of the curve,

the coordinate distances X and X from the starting point 22 to the center C of the circle, and a parameter, T stated as or which gives the direction of rotation of the curve from the starting point 22 to the end point 23. The parameters AX, AY, X and X will each be expressed as a number and a sign, or At the starting point 22, a line tangent to the circle has a slope (a/b) equal to ZC/X.

FIG. 20 shows a parabolic curve having a starting point 24 and an end point 25. This curve can be expressed mathematically by the coordinate diiferences, AX and AY, between the starting point 24 and the end point 25, the coordinate distance between the starting point 24 and the axis A of the parabola (in this instance, the X coordinate distance, designated X), the summit radius of the parabola (that is, the other coordinate distance between the starting point 24 and the vertex V of the parabolain this instance, the Y coordinate distance, designated 1), the direction of rotation (T or of the parabolic curve from its starting 'point 24 to its end point, and an additional parameter, T (expressed as or which indicates whether the axis A is parallel to the Y axis or parallel to the X axis. In FIG. 20, the axis A is shown parallel to the Y axis. The parameters AX, AY, X and Z are each expressed as a number and a sign or With such parameters encoded on a record medium,

such as a punched tape, the curve generator of the present invention can generate a curve which closely follows the corresponding mathematical curve. In the use of the present invention for controlling a machine tool, the mathematical curves which correspond to successive curves to be machined on the workpiece are recorded in succession on the record medium, so that the machine tool will carry out in succession the machining operations necessary to produce the respective curves.

FIG. 3 shows a portion of a punched paper tape having encoded thereon the parameters for a straight line. The tape is an eight-row tape encoded according to the Electronic Industries Association standard code. The numbers are not recorded as true binary numbers, but in binary-coded decimal form. That is, each successive digit in the decimal number is recorded in binary form. In theparticular example shown in FIG. 3, AX is +3567 and AY is 4285. The next encoded symbol E designates the end of the data block on the tape.

FIG. 4 shows a portion of a punched tape having the parameters of a circular are encoded thereon in binaryencoded decimal form. As shown, these parameters are: AX=+490; AY=+1700; =+490; X=+780; and T,=+.

FIG. 5 shows a portion of a punched tape similarly encoded with the parameters of a parabolic curve. As shown, these parameters are: AX=+500; AY=+1300; =-120; 1 '=+140; T and T Outline of control system A machine tool numerical control system embodying the numerical curve generator of the present invention is shown in block diagram form in FIG. 6. In general outline, it includes a tape reader 30 for reading successive encoded sections of a punched tape of the type shown in FIGS. 35. For each particular curve section, one section at a time, the encoded parameters read from the tape are fed into a reader control and data distributor 31, shown in greater detail in FIG. 12. The individual parameters for that curve section are fed, via correspondingly labelled lines, from the output of the distributor 31 to separate input terminals of a numerical curve generator 32, which is shown complete and in detail in FIG. 11. This curve generator, in response to the input data fed into it, produces control signals for X and Y servos 33 and 34, which respectively control incremental movements of the machine tool 35 in the X and Y directions.

In this system, the X and Y movements of the machine tool take place separately and not simultaneously. That is, at any instant when the tool is moving in the X direction it does not move in the Y direction, and vice versa.

It will be apparent, therefore, that the tool moves in stair-step fashion, instead of along a continuous curve. However, the individual increments of movement of the tool are so small that the toolfollows the desired curve with sufficient accuracy for practical purposes.

The machine tool itself is no part of the present invention and therefore it is not shown in detail. As an illustrative example, the machine tool may be a lathe having a cross slide carriage mounted for movement parallel to one of the coordinate axes, such as the X axis, and a cross slide mounted for movement parallel to the other coordinate axis.

The system of FIG. 6 also includes a feedback network 36 connected from the numerical curve generator back to the reader control and data distributor 31, as explained hereinafter in the description of FIG. 11. When a particular curve, as defined by the parameters read from the tape, has been completed by the curve generator 32, it sends back an end of curve signal via line 36 which conditions the reader control and data distributor 31 to begin the reading of the parameters of the next curve encoded on the tape.

Output lines 37 from the reader control and data distributor 31 to the machine tool enable the system to control various auxiliary functions in the machine tool,

. such as change of spindle speed, coolant supply, etc. The

punched tape will have data encoded thereon which specify these functions, and these commands will be routed by the reader control and data distributor 31 to the machine tool. The details of this auxiliary function control are not part of the present invention and therefore will not be described in detail.

Feedback circuits 38 and 39 are connected from the machine tool back to the X and Y servos 33 and 34 for a purpose explained hereinafter.

Arithmetic operations in curve generator In order to facilitate an understanding of the numerical curve generator of the present invention, reference is made to FIGS. 7a, 7b and 7c. The straight line L shown therein has a predetermined slope (a/ b), in this instance 3/7.

In accordance with the present invention, it is desired to produce a movement in stair-step fashion which follows this sloping line L as closely as possible. That is, the successive increments of movement take place separately, either in the X or Y directions, but in such a fashion that they follow as closely as possible the sloping line L.

To achieve this, referring to FIG. 70, there is provided an arithmetic unit 40 capable of performing either addition or subtraction of a or b with respect to a number stored in the arithmetic unit. The arrangement is such that if the number in the arithmetic unit is positive, the next operation is a subtraction of the number a from this number. If the number in the arithmetic unit is negative, the next operation is an addition of the number b.

Assume for purposes of this discussion that the starting number in the arithmetic unit is zero. Also, assume that the presence of zero in the arithmetic unit calls for a subtraction of a as the next operation.

Under these conditions, the first operation is a sub traction of a (3), as shown in the table of FIG. 71). As described in detail hereinafter, this operation can be arranged to cause a single increment of movement d in the X direction, represented by the line 42 in FIG. 7a, to the coordinate position X=1, Y=0.

The resultant number, 3, is fed back by way of a feedback line 41 to the input of the arithmetic unit 40. Since this number is negative, the next operation in the arithmetic unit will be an addition of b (7) to this number 3. This addition operation produces a single increment of movement a in the Y direction, as shown by line 43 in FIG. 7a, to the coordinate position X I, Y=1.

The resultant number, +4, is fed back to the arithmetic unit and, since it is positive, the next operation in the arithmetic unit will be a subtraction of a from +4. This subtraction operation in the arithmetic unit produces a single increment of movement in the X direction, as shown by line 44 in "FIG. 7a, to the coordinate position X=2, Y=1.

The resultant number, +1, is fed :back to the arithmetic unit and, since it is positive, the next operation in the arithmetic unit will be another subtraction of a from +1. This operation produces a single increment of movement in the X direction, as shown by line 45 in FIG. 7a, to the coordinate position X :3, Y=1.

Successive additions and subtractions occur in the sequence shown in the table of FIG. 712. These operations in the arithmetic unit produce single increments of movement in the corresponding directions, as shown in FIG. 7a, to the X and Y coordinate positions specified in the table of FIG. 7b.

From FIG. 7a it will be apparent that the actual incremental movements in the X and Y directions follow closely the sloping line L. It should be understood that in actual practice there will be a great number of these incremental movements to produce a given curve and each individual incremental movement will be extremely short, so that the deviation from an exact following of the sloping line L is not harmful as a practical matter.

From FIG. 7b it will be evident that, in the particular example given, the number of subtractions 11,, and additions n ,which took place in thearithmetic unit are related to the slope a/b as follows:

This relationship can be made to hold true, for practical purposes, for circular and parabolic curves, hyperbolic curves and elliptical curves as explained hereinafter. Therefore, the same arithmetic technique may be used to generate individual incremental; X and Y movements which closely follow such curves. In the case of a curve other than a straight line, the numbers a and b will not remain constant throughout the genertaion of the curve because the slope or tangent of the curve will change from When the number of incremental movements is large, n and n will be large numbers, and n a and n b will be large numbers compared to a and b. Since the difference (n b-n a) is comparatively small, for practical purposes the following equation is valid n a=n b (3) or am n,, b

For all of the different types of curves (straight lines, circles, parabolas, hyperbolas and ellipses) under consideration, the following difieren-tial equation holds true where each of the coefiicients m, n, p and q may be +1, 1 or 0, depending upon the curve type.

For a straight line, m, n, p and q are all zero.

For a circle, whose equation in integrated form is (Hoar 0 the coefficients will have the following values:

' P= q= so that E -it dx by In the arithmetic operations referred to in connection with FIG. 70, when a circular arc is being generated the number a will be changed by plus one after each positive incremental movement in the X direction and the number b will be changed by minue one after each positive incremental movement in the Y direction. That is, both of the parameters are changed during the generation of the curve. This is in contrast to the generation of a straight line here both parameters remain constant throughout.

For a parabola, four possible basic situations are possible, as shown by FIGS. 7d,. 72, 7 and 7g. To simplify this discussion, it is assumed in each instance that the vertex of the parabola is at the origin of the X and Y coordinates.

f e a The parabola of FIG. 7d is defined by the equation y f In this case,

which means that in the general difierential Equation 5 m'=0, n=0, p=0, q=+l, b=O, and w=2f, so that l@z z 11+?! The parabola of FIG. 7e is defined by the equation y f (11) In this case,

i i da; y (12) which means that in Equation 5 m=0, n=0, p=0, q=1,

b=O, and (1:21, so that dx b-y (13) The parabola of FIG. 7 is defined by the equation X =4fy (14) In this case,

1L2 da; 2f (15) which means that in Equation 5 m -l-l, n=0, p=0, q=0,

b=2f, and a=0, so that new d:v b

The parabola of FIG. 7g is defined by the equation fy In this case,

which means that in Equation 5 m=l, n=0, 9:0, q=0, 12:27, and a =0, so that da: b 19) From Equations 10, 13,16 and 19 it will be evident that only one of the parameters is modified during the generation of the parabola. For example, in the case of FIG. 7 the parameter a, which iszero at the start is modified by the term mx, whereas the parameter b remains constant throughout the generation of the parabola. The same relationship holds true for any parabola having its axis parallel to one of the coordinate (X or Y) axes but with its vertex not at the origin.

In the arithmetic operations referred to in connection with FIG. 70, when the axis of the parabola is parallel to the X coordinate axis, the number 11 will be changed by one after each incremental movement in the Y direction, whereas the number a will remain the same after each incremental movement in the X direction. When the axis of the parabola is parallel to the Y coordinate axis, the

number a will changed by one after each incremental movement in the X direction, whereas the number b will remain the same after each incremental movement in the Y direction.

Straight line generator-FIG. 8

FIG. 8 illustrates in block diagram form the components of the present curve generator which are required to generate the simplest mathematical curve under consideration, i.e., the straight line. These same components plus others, are in the complete curve generator (FIG. 11), which is capable of generating circular arcs, parabolic curves, and other conic section curves, as well as straight lines.

In FIG. 8, the number AX (the b number in FIG. 7c) for the particular straight line to be generated is stored in the b register 50. The number AY (the a number in FIG. 7c) for this line is stored in the a register 51'. Preferably, each of these registers is a binary electronic flipfiop register. The arithmetic unit includes an accumulator 52 having its output line 53 connected to an add/subtract unit 54.

The b register has an output line 55 leading to a gate, designated gate 4, and this gate is adapted to pass the AX number from the b register 50 to a line 56 leading to one input terminal of the add/subtract unit 54. Gate 4 is conditioned by a pulse applied to line 57 to pass the AX number to the add/ subtract unit 54, as explained hereinafter. When gate 4 is open, the AX number is added in the unit 54 to the number in the accumulator 52.

The b register 50 also is provided with a feedback line 58 which recirculates the AX number from the output of the b register back to its input.

The a register 51 has an output line 59 leading to a gate, designated gate 5, and this gate is adapted to pass the AY number coming from register 51 to-a line 69 leading to another input terminal of the add/subtract unit 54. Gate is conditioned to so pass the AY number in response to a pulse on line 61, as explained hereinafter. When gate 5 is open, the AY number is subtracted in the unit 54 from the number in the accumulator 52. This subtraction is done by adding the binary complement of the AY number to the accumulator member.

The a register 51 is also provided with a feedback line 62, which recirculates the AY number from the output of the a register back to its input.

A feedback line 63 extends from the output of the add/ subtract unit 54 back to the input of the accumulator 52. At any instant the number in the accumulator is the result of the preceding additions and subtractions which have taken place in the add/subtract unit 54.

The output of the add/subtract unit 54 is connected through a line 64 to the input of a carry flip-flop 65, which assumes a one condition if the number coming from unit 54 is negative and assumes a zero condition if the number coming from unit 54 is positive. This is due to the method of subtraction employed in the unit 54 by adding the binary complement of the AY number.

A feedback line 66 extends from the output of the carry flip-flop 65 back to the add/subtract unit 54 to condition the latter for the next arithmetic operation, either an addition of AX or a subtraction of AY, depending upon whether the carry flip-flop 65 is in its one or zero condition.

An output line 67 from the carry flip-flop 65 leads to a gate, designated gate 1. When gate 1 is open, as explained hereinafter, a single test pulse from line 75 is passed either to an output line 68 for movement of the tool in the X direction or to an output line 69 for movement of the tool in the Y direction, depending upon whether the carry flip-flop 65 is in its one or zero condition. Also the value (zero or one) of the carry flipflop 65 after the addition or subtraction operation, is passed through gate 1 via line 70 to a carry memory flip flop 71. The previously mentioned lines 57 and 61 extend from the output of the carry memory flip-flop back to gate 4 and gate 5, respectively. The carry memory flipflop 71 passes a gating signal to one or the other of these gates, depending upon the carry signal which it has received from gate 1.

For operating the b and a registers and gate 1 there is provided a path velocity 'clock 72 which drives a pulse train generator 73. The latter produces output pulses at a rate deter-mined by the path velocity clock. These pulses are of two types: shift pulses, which are applied to the b and a registers, and test pulses, which are applied to gate 11.

For each addition or subtraction to be performed in the arithmetic unit, a train of successive discrete shift pulses are applied through line 74 to both the b register 50 and the a register 51. The number n of shift pulses in the train is equal to the number of flip-flops in each of the registers. Each train of shift pulses shifts the AX number out of the b register and shifts the AY number out of the a register.

Each shift pulse train is followed by a test pulse on line 75 leading to gate 1.

If gate 4 is open, the AX number, which has been shifted out of the b register by the preceding train of shift pulses, is passed to the add/subtract unit 54, where it is added to the number in the accumulator.

If gate 5 is open, the AY number, which has been shifted out of the a register by the preceding train of shift pulses, is passed to the add/subtract unit 54, Where it is subtracted from the number coming from the accumulator.

Either gate 4 or gate 5, but not both, will have been opened by the feedback carry signal from the carry memory flip-flop 71 which followed the preceding addition or subtraction operation in the arithmetic unit.

As a result of the addition or subtraction operation, a single pulse will be delivered either to 'line 68, to produce a single increment of movement of the tool in the X direction, or to line 69, to produce a single increment of movement of the tool in the Y direction.

Also as a result of the addition or subtraction, a new number will be stored in the accumulator 52, and the sign of this number will determine Whether the next arithmetic operation is to be a subtraction of AY or an addition of AX.

It will be apparent that this circuit operates on the principles described with reference to FIGS. 7a, 7b and 7c. As already explained, for a straight line the numbers in the b and a registers remain unchanged, since such a line has a constant slope.

Circular arc generator-FIG. 9

FIG. 9 is a block diagram showing the components of the present curve generator which are used in generating a circular arc in response to the reading of data from a tape as shown in FIG. 4.

All of the components of the FIG. 8 circuit are present in the FIG. 9 circuit, where they are given the same reference numerals. The functions of these previouslydescribed units will not be restated. It should (be noted that the b register in :FIG. 9 stores the Y number and the a register stores the X number, which differs from the arrangement of FIG. 8, because now the slope AY/AX of the curve at any given point is the reciprocal of g/g, where X and Y are the coordinates from that point to the center of the circle.

In FIG. 9 an add/ subtract unit 76 is connected between the output of the b register 50 and gate 4. The input line to this add/subtract unit is designated 55 and its output line is designated 55".

A similar add/subtract unit 77 is connected between the output line 59 from the a register and a line 59" leading to gate 5.

The numbers initially stored in the a and b registers are the parameters E and 1, respectively, which are the coordinate distances of the starting point 22 (FIG. 2b) from the center of the circle. The ratio (X/X) of these numbers gives the angular coeflicient of the tangent (AY/ AX) to the circle at that point. However, this tangent changes as the tool moves along the arc. Therefore, the numbers stored in the a and b registers must the modified to reflect the changed position along the circular are. In the present invention for each command pulse to the tool in the X direction, the tool is moved a single increment of movement and the number stored in the a register is changed by one, either plus or minus, depending upon the direction of such X movement. The same operation is performed on the number in the b register for each command pulse in the Y direction.

Add and subtract control signals are applied to the b registers add/subtract unit 76 through lines 78 and 79. Add and subtract control signals are applied to the a registers add/subtract unit 77 through lines 80 and 81.

A Y carry flip-rflop 82 is associated with the add/subtract unit 76 for the b register. This flip flop is connected by line 83 to the command pulse output line 69 for tool movement in the Y direction. The Y carry flip-flop 82 is set to one each time there is a Y command pulse. This carry one signal is fed back via line 84 from the Y carry flip-flop '82 back to the Y add/subtract unit 76.

. Therefore, the number one is either added to or subtracted from the b register number in the add/subtract unit 76. This takes place when the next train of shift pulses shifts the Y number out of the b register into the add/subtract unit 76. The new Y number goes to gate 4 and thence to the main add/subtract unit 54 if gate 4 is open. Also, the new Y. number is' fed back via feedback line 58' to the b register.

A similar arrangement is provided in association with the X add/subtract unit 77. The X carry flip-flop, designated by the reference numeral 86, is connected by :line' FIG. 10 is a block diagram showing the components of the present curve generator which are used in generatinga parabolic curve in response to the reading of data from the tape as shown in FIG. 5.

All of the components of the FIG. 9 circuit are present in FIG. 10. v

In addition,'there are provided two more gates, desig nated gate 2 and gate 3, respectively, which control the operation of the Y carry flip-flop 82 and the X carry flip-flop 86. Gate 2 is connected between the Y command pulse'output line 69 and a'feed'back line 83 leading to the Y carry flip-flop 82. Gate 3 is connected between the X command pulse output line 68 and a-feedback line 87' leading to the X carry flip-flop 86.

As already pointed out in the section on arithmetic operations, only one or the other of the X and Y numbers (in the a and b registers, respectively) will change during the generation of the curve. The direction of the axis of the parabola (either parallel to the X coordinate axis or parallel to the Y coordinate axis) will determine which one of these numbers is changed.

If the axis of the parabola is parallel to the X axis, then gate 3 will remain closed at all times by means of a control signalapplied through line 89. Gate 2 will be open at all times by means of a control signal applied through line 90. Therefore, while the X number in the a register 51 will remain the same throughout the generation of the curve, the Y number in the b register will be changed by one each time there is a command pluse to the Y command line 69.

The converse holds true when the axis of the parabola to be generated is parallel to the Y axis.

The choice of the parabola axis is done by the symbol T; or punched on the tape (FIG. 5).

When a parabola is to be generated the numbers X and X, which represent the coordinate distances of the Complete curve generat0r-F I G. 11

The complete curve generator is shown in FIG. 11. In addition to the components already described, it includes means for sensing when the end point of any particular designated curve has been reached.

A AY register 91 has associated therewith a AY add, substract unit 92 and a AY carry flip-flop 93. These components are interconnected for operation in the same manner as the b register 50, the add/ subtract unit 76 and the carry flip-flop 82, already described in detail. Every time a Y movement command pulse is applied to line 69, the number one is either added to or subtracted from the number in the AY register 91, depending upon the direction of movement specified for the Y command pulse that is, whether toward or away from the end point in the Y coordinate direction. Add and subtract control signals are applied through lines 94 and 95 to the add/ subtract unit 92.

Accordingly, the number in the AY register at any time represents the Y coordinate distance of the difference between the actual position of the tool and the end point of the particular curve being generated. Therefore, when the tool reaches the Y coordinate end point position, the number in the AY register 91 becomes zero.

Zero-test circuitry 96 is connected to the AY register so that when it reaches zero a control signal will be sent via line 97 to close a gate, designated gate 6, which is connected between the Y command output line 69 and the Y servo. This positively prevents any additional Y command pulses from being applied to move the tool any [farther in the Y direction during the remainder, if any, of the generation of this particular curve.

An identical arrangement is provided for sensing the end point of the tool in the X coordinate direction for each particular curve. This arrangement includes a AX register 98, a AX add/subtract unit 99, a AX carry flip-flop 100, add and subtract control signal lines 101 and 102, zero-test circuitry 103, and a control signal line 104 from the latter to a gate, designated gate 7, which is connected between the X command output line 69 and the X servo.

It will be understood that the initial numbers fed into the AX and AY registers are the correspondingly desig nated numbers read from the tape.

When both the AX and AY registers reach zero an end of curve signal will be sent via line 36 in FIG. 6, from the numerical curve generator 32 to the reader control and data distributor 31 -to indicate the end of the generation of this particular curve, and to start the reading of the parameters of the next curve from the tape.

Reader control and data distributor The reader control and data distributor, already mentioned in the description of FIG. '6, is shown in block diagram form in FIG. 12.

The tape reader 30 has an output line connected to parity checking unit 110, which checks all of the output information coming from the reader for parity. If a reading shows wrong parity the checking unit produces a signal which stops the reader 30.

The tape reader 30 also has an output line connected to a decoder 111. This decoder sorts the read-in information into three categories: addressess, numbers and signs. As already mentioned, an address precedes each number on the tape, in accordance with Electronic Industries Association standards.

The decoder 111 has an address output line 112 lead- 1 1 ing to a register 113, which stores the read-in addresses. The address register has its output connected to the input of a decoder 114, which sorts the-addresses into the following seven possible categories: AX, X, AY, X, T T and Auxiliary Functions. Four output lines, 116', 117 and 118', respectively, lead from the decorder to corresponding individual gates 115, 116, 117 and 118, respectively. Each of these gates has an input terminal connected to receive shift pulses applied to line 119. The arrangement is such that the shift pulses operate the gates 115 to 118 to permit a signal to be generated on the respective gates output line 120, 121, 122 or 123 When there is a coincidence between an address control signal on the respective gates input line 115', 116, 117' or 118 and a shift pulse on line 119. This passes the address control signals from the decoder 114 through lines 120, 121, 122 and 123, respectively, to the AY register 91, and b register 50, the a register 51, and the AX register 98.

A second output line 124 from the decoder 111 conducts the read-in numbers to a decimal to binary converter 125. As already pointed out, each number recorded on the punched tape is in binary-coded decimal form, whereas the curve generator (FIG. 11) operates in response to binary numbers. Therefore, it is necessary to convert the numbers read in from the tape to true binary numbers.

An output line 126 from the converter 125 applies the read-in and converted binary numbers to input terminals of the AY register 91, the b register 50, the a register 51 and the AX register 98. A number is stored in a particular register only if the register has been conditioned by the shift pulses received from the respective line 120, 121, 122 or 123. The converter 125 is conditioned to pass read-in numbers to its output line 126 in response to shift pulses applied to line 127.

The converter 125 also has an output line 128 leading to a decoder 129. On the record tape the auxiliary functions of the machine tool are each recorded as an address followed by a number. The address is decoded by the aforementioned address decoder 114. The read-in number for the auxiliary function is converted to binary form in the converter 125 and is applied through line 128 to an input of the decoder 129. This decoder is conditioned by an address control signal coming from the address decoder 114 via line 130, to pass the auxiliary function number from the decoder 129 to the output line 131, 132, 133, 134 or 135 which correspond to the particular auxiliary function desired.

A third output line 136 from the decoder 111 conducts the read-in signs or to a temporary storage device 137. This device has an output line 138 connected to the input of each of six separate flip-flops 139, 140, 141, 142, 143 and 144 which are respectively for the sign of AY, X, X, AX, T or T Each of these flip-flops 139 to 144 is connected to be conditioned to respond to a sign input signal at line 138 by a respective gate 145, 146, 147, 148, 149 or 150. These gates are connected through respective input lines 151, 152, 153, 154, 155 and 156 to receive address control signals from the address decoder 114. Each of the gates to has an input terminal connected through line 157 to receive a test pulse.

In operation, when one of the gates 145 to 150 is conditioned by a respective address signal from the address decoder 114, a test pulse applied to line 157 will pass through that gate to condition the corresponding flip-flop 139, 140, 141, 142, 143 or 144. Then the read-in sign signal applied to line 138 operates the flip-flop which has been so conditioned.

To recapitulate the operation of this circuit, during the reading-in of data from the record tape, such data are divided into separate categories by the decoder 111. Each read-in address conditions the operation of the respective number register for the AX, X, X or AY number which 12 follows that address and/or it conditions the respective gate 145, 146, 147, 148, 149 or 150 for the respective sign flip-flop 139, 140, 141, 142, 143 or 144. The read-in numbers for AX, X, X and AY are converted to true binary numbers and then are fed into the appropriate registers 98, 51, 50 and 91, respectively. Read-in numbers which designate auxiliary functions are similarly converted and then are decoded. The read-in signs operate the flip-flops 139 to 144 after the latter have been conditioned by the respective decoded addresses.

In feeding the read-in numbers into the AX, a, b and AY registers, it is to be understood that if the curve is a straight line, the same number (AX) is fed into both the b register 50 and the AX register 98, and the same number (AY) is fed into both the a register 51 and the AY register 91. For this reason the address decoder is designed to produce gate signals simultaneously on its output lines 116' and 118' in response to the AX address and simultaneously on its output lines 115 and 117 in response to the AY address.

In the case of circular arcs or parabolic curves, the read-in X and X numbers will differ form the AX and AY numbers, of course. As shown in FIGS. 3 to 5, on

the tape the parameters AX and AY always precede the parameters X and X so that even though the AX and AY numbers are fed into the b and a registers 50 and 51, respectively, they are then displaced by the X and X numbers, respectively.

Accordingly, if a straight line is to be generated, the AX number will be stored in the b register 50 and the AY number will be stored in the a register as the starting number, prior to the curve generating operation, as described in connection with FIGURE 8. However, if a curve other than a straight line is to be generated, the X number will be stored as the starting number in the I) register 50 and the X number will be stored as the starting number in the a register S l before the curve generating operation begins, as described in connection with FIGURES 9 and 10.

In addition to being under the control of the parity checking device 110, the tape reader 30 is under the control of a control circuit 160. This control circuit has three inputs: manual start 16 1, end of curve 36, and end of line" 163. The function of the control circuit 160 is to cause the tape reader 30 to read in the data from the record tape and then to stop the tape reading and cause the numerical curve generator (FIG. 11) to generate a curve corresponding to the data just read in from the tape.

The tape reading begins immediately when the control circuit 160 receives (via line 36) an end of curve signal from the numerical curve generator, which indicates that the preceding curve has been completed. As explained in the description of FIG. 11, this end of curve signal is fed back via line 36 when both the AX and AY registers in the numerical curve generator (FIG. 11) reach zero.

After the tape reader has completed its reading of all the data for the next curve, it reads the E (end of line) signal on the tape. This signal is decoded in the decoder 111 and is passed through line 163 to condition the control circuit 160 to stop the tape reader 30 and to start the curve generation in the numerical curve generator (FIG. 11.)

The sign flip-flops 139-4144 have output lines leading to a block of logic circuitry which has a plurality of individual output lines for controlling the operation of the curve generator (FIG. 11). These lines are given the same reference numerals as in FIG. 11. The signal, designating either or on each of these lines controls the following functions in the curve generator:

(1) the signal line 171 controls gate 6 FIG. 11) to determine whether the Y coordinate movement shall be in the forward or backward direction;

(2) the signal on either line 94 or line 95 controls the AY add/substract .unit 9-2 to perform either addition or substraction operations so as to change the number in the AY register after each incremental movement of the tool in the Y coordinate direction;

(3) the signal on either line 78 or line 79 controls the add/subtract unit 76 associated with the b register to perform either addition or subtraction operations so as to change the number in the b register after each incremental movement of the tool in the Y coordinate direction (if gate 2 is open);

(4) the signal on either line 80 or line 81 controls the add/subtract unit 77 associated with the a register to perform either addition or subtraction operations so as to change the number in the a register after each incremental movement of the tool in the X coordinate direction (if gate 3 is open);

(5) the signal on either line 101 or line 102 controls the AX add/subtract unit 99 to perform either addition or subtraction operations so as to change the number in the AX register after each incremental movement of the tool in the X coordinate :direction;

(6) the signal on line 172 controls gate 7 to determine whether the X coordinate movementof the tool shall be in the forward or backward direction.

The logic functions performed by the logic block 170 are shown in the table of FIG. 14. This table lists all possible combinations of the signs and the corresponding output signal values.

FIG. 14 also shows the equivalent Boolean expressionsfor all of the output signals.

During the generation of circular arcs or parabolic curves, for example, one or more signsmay have to'be changed when the curve passes from one quadrant to another. For this purpose another block 173 of logic circuitry is connected to the sign flip-flops 139-144 in FIG. 12. This logic block is under the control of the zero-test circuitry such that it changes a sign only when the corresponding figure reaches zero. For this purpose, the logic block is under the control of zero-test signals on the respective lines labelled X=0, AX=0, Y=0, AY=0, in FIG. 1-2 and in FIG. 11,

FIG.- 15 shows the tfunctions of the logic block 173 and the equivalent Boolean expressions.

The logic block 17 0 controls the operation of the curve generator. The logic block 173, by virtue of its control over the sign flip-flops 139-I1 44, controls the operation of logic block 170 to take care of the situation when the curve passes either an;=0point, a Y =0 point, a AX=O point or a AY=0 point.

Each logic block 17 0 and 173 is composed of a plurality of binary switching devices interconnected in accordance 'with known principles (set forth in the following publications: Pressman, Design of Transistorized Circuits for Computers," Rider, 1959; Hurley, Transistor Logic Circuits, Wiley, 1961; Phister, Logical Design of Digital Computers, Wiley, 1958; Jetfrey and Reed, The Use of Boolean Algebra in Logical Design, M.I.T. Report E-45 8-l, 1952) to perform logical operations as tabulated in FIGS. 14 and 15, respectively.

In FIG. 14, the first six columns (sign AX, sign AY, sign X, sign X, sign T and sign T are the six inputs to the logic block 170 from the respective sign flip-flops 139 144 (FIG. 16a). The final six columns in FIG. 14 show the ten possible output signals from the logic block, namely, sign AX, sign AY, sign X, sign I (each of which may be either add or subtract on line 101 or 102, line 94 or 95, line 80 or 81, and line 78 or 79, respectively, in FIGS. 16a and 16b), X-mov. (line 172) and Y-mov. (line 171). six input signals to logic block 170 produces a corresponding unique combination of the six output signals, as tabulated in FIG. 14.

' are established initially in the logic block 170.

the .curve either passes the change sign 5 point in' Each possible combination of the Considering the operation of logic block when a circular arc (FIG. 2b) is to be generated, reference is made to FIGS. l7-20. In these figures the following conventions are followed: clockwise rotation (T,) is negative; counterclockwise rotation is positive; above the X axis, AY is positive; below the X axis, AY is negative; to the right of the Y axis, AX is positive; to the left of the Y axis, AX is negative; the starting point 22 is the origin of the X and Y axes.

In each of FIGURES 17-20 there are upper and lower change sign X points on the circle, which are aligned vertically with the center C. By definition, X is the horizontal distance from a point on the curve to the center of the circle. To the left-of the center C, sign X is to the right of the center C, sign X is Similarly, there are left and right-hand change sign 1 points on the circle, which are aligned horizontally with the center C. By definition, X is the vertical distancefrom a point on the curve to the center of the circle. Above this center, sign 1 is below this center, sign I is In FIG. 17, the location of the starting point S with respect to the center C of the circular arc is such that sign X is and sign X is If the direction of rotation from the starting point S to the end point is clockwise (T,) in FIG. 17, then:

(a) If the end of the curve is in quadrant I, as specified by sign AX=+ and sign AY=+ in the respective inputs to logic block 170 from the flip-flops 142 and 139, then the conditions stated in line 15 of the FIG- 14 table (When this quadrant or passes a change sign AY point, then the logic block 173 changes one of the inputs to logic block 170 so as to produce a corresponding change or changes in output signals from logic block 170, as explained hereinafter.)

(b) If the end of the curve is in quadrant IV, as specified by sign AX=+ and. sign AY= in the respective inputs to logic block 170, then the conditions stated in line 13 of the FIG. 14 table are established initially in logic block 170. (Whenever the curve passes a change sign X point or a change sign 1 point or a change AX point or .a change AY point, then the logic block 1173 changes the conditions in logic block 170, as explained hereinafter.)

(c) If the end of the curve is in quadrant HI, as specified by sign AX=- and sign AY=- in the respective inputs to logic block 170, then the conditions +AY), then the conditions stated in line 16 of the FIG.

points, then logic block I173 changes the conditions in.

logic block 170 accordingly.)

(c) If the end of the curve is in quadrant III (AX, AY), then the conditions stated in line 10 of the FIG. 14 table are established initially in logic block 17 0. (Each time the curve passes one of the change sign points, then logic block 173 changes the conditions in logic block 170 accordingly.)

From the tfioregoing it will be apparent that FIG. 17 depicts six of the twenty-four possible starting conditions for logic block 176 which are listed in the FIG. 14 table.

In FIG. 18 the location of the starting point S with respect to the center C is such that sign is and sign 1 is If the direction of rotation is clockwise (T,) in FIG. 18, then:

(a) If the end of the curve is in quadrant I, as specified by sign AX=+ and sign AY=+ in the respective inputs to logic block 170, then the conditions stated in line 1 of the FIG. 14 table are established initially in the logic block 170.

(b) If the end of the curve is in quadrant IV, as specified by sign AX:+ and sign AY= in the respective inputs to logic block 170, then the conditions stated in line 17 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant II, as specified by sign AX=- and sign AY=+ in the respective inputs to logic block 170, then the conditions stated in line 3 of the FIG. 14 table are established initially in the logic block 170.

In FIG. 18 if the direction of rotation is counterclockwise (T,+), then:

(a) If the end of the curve is in quadrant I (+AX, +AY), then the conditions stated in line 2 of the FIG. 14 table are established initially in the logic block 170.

(b) If the end of the curve is in quadrant IV (-i-AX, AY), then the conditions stated in line 18 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant II (-AX, +AY), then the conditions stated in line 4 of the FIG. 14 table are established initially in the logic block 170.

Thus, FIG. 18 depicts an additional six of the twentyfour possible starting conditions for logic block 170 which are listed in the FIG. 14 table.

It is to be understood that each time the curve passes one of the possible change sign points in FIG. 18, then the logic block 173 changes the condition in logic block 170.

In FIG. 19 the location of the starting point S with respect to the center C is such that sign E is and sign Y is In FIG. 19, if the direction of rotation is clockwise (T,.), then:

(a) If the end of the curve is in quadrant IV, as specified by sign AX=+ and sign AY:- in the respective inputs to logic block 170, then the conditions stated in line 19 of the FIG. 14 table are established initially in the logic block 170.

(b) It the end of the curve is in quadrant III, as specified by sign AX= and sign AY= in the respective inputs to logic block 170, then the conditions stated in line 5 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant II, as specified by sign AX=- and sign AY=+ in the respective inputs to logic block 170, then the conditions stated in line 7 of the FIG. 14 table are established initially in the logic block 170.

In FIG. 19, if the direction of rotation is counterclockwise (T then:

(a) If the end of the curve is in quadrant IV (-i-AX, AY), then the conditions stated in line of the FIG. 14 table are established initially in the logic block 170.

(b) If the end of the curve is in quadrant II-I (-AX, AY), then the conditions stated in line 6 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant II (--AX, +AY), then the conditions stated in line 8 of the FIG. 14 table are established initially in the logic block 170.

Thus, FIG. 19 illustrates another six of the twenty-four 16 possible starting conditions for logic block 170 which are listed in the FIG. 14 table.

Here again, logic block 173 will change the conditions in logic block 170 each time the curve passes one of the possible change sign points in FIG. 19.

In FIG. 20 the location of the starting point S with respect to the center C is such that sign 2 is and sign X is In FIG. 20, if the direction of rotation is clockwise (T then:

(a) If the end of the curve is in quadrant III, as specified by sign AX=- and sign AY= in the respective inputs to the logic block 170, then the conditions stated in line 11 of the FIG. 14 table are established initially in the logic block .170.

(b) It the end of the curve is in quadrant II, as specified by sign AX= and sign AY=+ in the respective inputs to the logic block 170, then the conditions stated in line 2 1 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant I, as specified by sign AX=+ and sign AY=+ in the respective inputs to the logic block 170, then the conditions stated in line 23 of the FIG. 14 table are established initially in the logic block 170.

In FIG. 20, if the direction of rotation is counterclockwise (T then:

(a) If the end of the curve is in quadrant III (AX, AY-), then the conditions stated in line 12 of the FIG. 14 table are established initially in the logic block 170.

(b) If the end of the curve is in quadrant II (AX, AY+), then the conditions specified in line 22 of the FIG. 14 table are established initially in the logic block 170.

(c) If the end of the curve is in quadrant I (AX+, AY+), then the conditions specified in line 24 of the FIG. 14 table are established initially in the logic block 170.

Thus, FIG. 20 illustrates the remaining six possible starting conditions for logic block 170 which are listed in the FIG. 14 table.

Each time the curve passes a change sign point in FIG. 20, then logic block 173 changes the conditions in logic block 170 accordingly.

As shown in FIG. 12, the sign modification logic block 173 has six output lines connected respectively to the sign flip-flops 139-4144, and these sign fiip-flops in turn have their respective output lines connected to the logic block 1170. Logic block 173 has four input lines, designated in FIG. 12 as =O, AX=O, i=0, and

AY=0. These are the correspondingly designated output lines from the zero-test circuits associated respectively with the a register 51, the AX register 98, the b register and the AY register 91 in FIG. 11. When the curve reaches one of the zero points, then the number in the corresponding one of these registers will reach zero, and this will be sensed by the respective zero-test circuit, which will produce a signal on the respective input line to the sign modification logic block 173 in FIG. 12.

The table of FIG. 15 shows the operation of logic block 173 in response to each of these zero-test input signals.

For example, in FIG. 17 if the end point is at 23' in quadrant I and the direction of rotation is clockwise (T then the initial conditions in logic block are as stated in line 15 of the FIG. 14 table, the X movement being positive (to the right) and the Y movement being positive (upward).

When the curve moves up past the point 23", at the same AY position as the end point 23', then sign AY change from to because now the curve is above the end point 23. As shown in the FIG. 15 table, at this point 23" (Where AY=O, sign and T sign AY is set to Accordingly, logic block 173 changes the sign AY input signal to logic block 170 so that now the condition in logic block 170 is as stated 

12. IN A NUMERICAL CURVE GENERATOR, TWO SEPARATE REGISTERS FOR STORING RESPECTIVELY TWO NUMBERS WHOSE RATIO DETERMINES THE INSTANTANEOUS SLOPE OF THE CURVE TO BE GENERATED, AN ACCUMULTOR FOR STORING AN ACCUMULATED NUMBER, AN ADD/SUBTRACT UNIT COUPLED TO SAID ACCUMULATOR AND TO SAID REGISTERS, MEANS FOR CAUSING SAID ADD/SUBTRACT UNIT TO ADD ONE OF SAID REGISTER NUMBERS TO SAID ACCUMULATED NUMBER WHEN THE LATTER IS NEGATIVE, MEANS FOR CAUSING SAID ADD/SUBTRACT UNIT TO SUBTRACT THE OTHER OF SAID REGISTER NUMBERS FROM SAID ACCUMULATED NUMBER WHEN THE LATTER IS POSITIVE, FEEDBACK MEANS CONNECTED BETWEEN SAID ADD/SUBTRACT UNIT AND SAID ACCUMULATOR FOR FEEDING BACK TO THE LATTER, AS THE NEW ACCUMULATED NUMBER, THE NUMBER WHICH RESULTS FROM SAID ADDITION OR SUBTRACTION IN THE ADD/SUBTRACT UNIT, MEANS COUPLED TO SAID ADD/ SUBTRACT UNIT AND OPERATIVE SELECTIVELY DEPENDING UPON 